
; This file defines the helicopter's (re)spawning behaviour and fuel in pursuits.
;
; For the TECHNICAL DETAILS AND LIMITATIONS of the features in here, see the "APPENDIX.txt" file.
; The UNEDITED VALUES in this file resemble the game's vanilla (i.e. unmodified) values.
;
; To define COP-CAR SPAWN TABLES, see the "CarTables.ini" file.
; To define GENERAL CAR (DE)SPAWNING BEHAVIOUR, see the "CarSpawns.ini" file.






; ── ■ │ HELICOPTER VEHICLE │ ■ ───────────────────────────────────────────────────────────────────

[Helicopter:Vehicle]
; Which vehicle spawns in place of the regular helicopter.
;
; ■ FORMAT: heatXY = helicopterPvehicle (FREE-ROAM; -> "default" if omitted)
;           raceXY = helicopterPvehicle (RACES;     -> "heatXY"  if omitted)
;
; • Bartender replaces vehicles that don't exist in VltEd with "copheli".
; • Bartender replaces vehicles that aren't helicopters with "copheli".
; • Each value must be a string (i.e. plain text).
; • You can define a "default" value.

default = copheli

heat01 = copheli
heat02 = copheli
heat03 = copheli
heat04 = copheli
heat05 = copheli
heat06 = copheli
heat07 = copheli
heat08 = copheli
heat09 = copheli
heat10 = copheli

race01 = copheli
race02 = copheli
race03 = copheli
race04 = copheli
race05 = copheli
race06 = copheli
race07 = copheli
race08 = copheli
race09 = copheli
race10 = copheli






; ── ■ │ HELICOPTER (DE / RE)SPAWNING │ ■ ─────────────────────────────────────────────────────────

[Helicopter:FirstSpawn]
; After how long (in seconds) the helicopter spawns for the first time in each player pursuit.
;
; ■ FORMAT: heatXY = {min, max}SpawnDelay (FREE-ROAM)
;           raceXY = {min, max}SpawnDelay (RACES)
;
; • First spawns happen only at Heat levels for which you define valid delay values.
; • Each first-spawn timer is a random value between "minSpawnDelay" and "maxSpawnDelay".
; • Respawning uses separate delay values depending on the despawn context (see groups below).
; • Each value must be a non-negative decimal or whole number.
; • You can't define a "default" value pair.

heat01 = 30.0, 30.0
heat02 = 25.0, 25.0
heat03 = 20.0, 20.0
heat04 = 10.0, 10.0
heat05 = 5.0, 5.0
heat06 = 3.0, 3.0
heat07 = 2.0, 2.0
heat08 = 1.0, 1.0
heat09 = 0.5, 0.5
heat10 = 0.1, 0.1

race01 = 15.0, 15.0
race02 = 15.0, 15.0
race03 = 15.0, 15.0
race04 = 15.0, 15.0
race05 = 5.0, 5.0
race06 = 5.0, 5.0
race07 = 5.0, 5.0
race08 = 5.0, 5.0
race09 = 5.0, 5.0
race10 = 0.1, 0.1




[Helicopter:FuelRespawn]
; After how long (in seconds) the helicopter respawns if it runs out of fuel.
;
; ■ FORMAT: heatXY = {min, max}RespawnDelay (FREE-ROAM)
;           raceXY = {min, max}RespawnDelay (RACES)
;
; • This respawn happens only at Heat levels for which you define valid delay values.
; • Each respawn timer is a random value between "minRespawnDelay" and "maxRespawnDelay".
; • A first spawn (see "[Helicopter:FirstSpawn]" above) is required to enable respawns.
; • It doesn't matter whether the first spawn happens at the same Heat level.
; • Each value must be a non-negative decimal or whole number.
; • You can't define a "default" value pair.

heat01 = 60.0, 60.0
heat02 = 60.0, 60.0
heat03 = 60.0, 60.0
heat04 = 5.0, 5.0
heat05 = 5.0, 5.0
heat06 = 5.0, 5.0
heat08 = 5.0, 5.0
heat09 =  5.0, 5.0
heat10 =   1.0, 1.0

race01 = 60.0, 60.0
race02 = 60.0, 60.0
race03 = 60.0, 60.0
race04 = 5.0, 5.0
race05 = 5.0, 5.0
race06 = 5.0, 5.0
race07 = 5.0, 5.0
race08 = 5.0, 5.0
race09 =  5.0, 5.0
race10 =   1.0, 1.0




[Helicopter:WreckRespawn]
; After how long (in seconds) the helicopter respawns if it gets wrecked.
;
; ■ FORMAT: heatXY = {min, max}RespawnDelay (FREE-ROAM)
;           raceXY = {min, max}RespawnDelay (RACES)
;
; • All "[Helicopter:FuelRespawn]" comments apply here as well.

heat01 = 120.0, 120.0
heat02 = 120.0, 120.0
heat03 = 120.0, 120.0
heat04 = 120.0, 120.0
heat05 = 10.0, 10.0
heat06 = 10.0, 10.0
heat08 = 10.0, 10.0
heat09 =  10.0, 10.0
heat10 =   1.0, 1.0

race04 = 120.0, 120.0
race05 = 120.0, 120.0
race06 = 120.0, 120.0
race07 = 120.0, 120.0
race08 = 120.0, 120.0
race09 = 120.0, 120.0
race10 = 120.0, 120.0




[Helicopter:LostRespawn]
; After how long (in seconds) the helicopter respawns if it loses you.
;
; ■ FORMAT: heatXY = {min, max}RespawnDelay (FREE-ROAM)
;           raceXY = {min, max}RespawnDelay (RACES)
;
; • All "[Helicopter:FuelRespawn]" comments apply here as well.

heat01 = 30.0, 30.0
heat02 = 30.0, 30.0
heat03 = 30.0, 30.0
heat04 = 30.0, 30.0
heat05 = 5.0, 5.0
heat06 = 5.0, 5.0
heat08 = 5.0, 5.0
heat09 =  5.0, 5.0
heat10 =   1.0, 1.0

race04 = 120.0, 120.0
race05 = 120.0, 120.0
race06 = 120.0, 120.0
race07 = 120.0, 120.0
race08 = 120.0, 120.0
race09 = 120.0, 120.0
race10 = 120.0, 120.0




[Helicopter:LostRejoin]
; Delay and minimum fuel time (in seconds) for the helicopter to rejoin instead if it loses you.
;
; ■ FORMAT: heatXY = {min, max}RejoinDelay, minRejoinFuelTime (FREE-ROAM)
;           raceXY = {min, max}RejoinDelay, minRejoinFuelTime (RACES)
;
; • Rejoining happens only at Heat levels for which you define valid delay and fuel values.
; • Each rejoin timer is a random value between "minRejoinDelay" and "maxRejoinDelay".
; • The helicopter rejoins with whatever amount of fuel it had left, minus the rejoin timer.
; • The helicopter rejoins as the same vehicle and doesn't increment the helicopter counter.
; • Attempting to rejoin with less than the minimum fuel time triggers a "lost" respawn instead.
; • Enabling rejoining prevents the helicopter from wasting spawns if it loses you instantly.
; • If rejoining is completely disabled, losing you always triggers a "lost" respawn instead.
; • Each value must be a non-negative decimal or whole number.
; • You can't define a "default" value tuple.

; Uncomment any of these sample values to enable them
heat01 = 10.0, 20.0, 10.0
heat02 = 10.0, 20.0, 10.0
heat03 = 10.0, 20.0, 10.0
heat04 = 10.0, 20.0, 10.0
heat05 = 2.0, 5.0, 10.0
heat06 = 2.0, 5.0, 10.0
heat08 = 2.0, 5.0, 10.0
heat09 = 2.0, 5.0, 10.0
heat10 = 0.5, 1.0, 5.0

; Uncomment any of these sample values to enable them
race01 = 10.0, 20.0, 10.0
race02 = 10.0, 20.0, 10.0
race03 = 10.0, 20.0, 10.0
race04 = 10.0, 20.0, 10.0
race05 = 2.0, 5.0, 10.0
race06 = 2.0, 5.0, 10.0
race08 = 2.0, 5.0, 10.0
race09 = 2.0, 5.0, 10.0
race10 = 0.5, 1.0, 5.0



[Helicopter:FuelTime]
; How much fuel-time (in seconds) the helicopter has when it (re)spawns.
;
; ■ FORMAT: heatXY = {min, max}FuelTime (FREE-ROAM)
;           raceXY = {min, max}FuelTime (RACES)
;
; • (Re)spawns have limited fuel only at Heat levels for which you define valid time values.
; • Rejoining recycles whatever fuel the helicopter had when it last despawned instead.
; • Each fuel amount is a random value between "minFuelTime" and "maxFuelTime".
; • (Re)spawns at Heat levels without time values have unlimited fuel.
; • Each value must be a non-negative decimal or whole number.
; • You can't define a "default" value pair.

heat01 = 120.0, 120.0
heat02 = 180.0, 180.0
heat03 = 240.0, 240.0
heat04 = 300.0, 300.0
heat05 = 600.0, 600.0
heat06 = 900.0, 900.0
heat07 = 1200.0, 1200.0
heat08 = 1800.0, 1800.0
heat09 = 2400.0, 2400.0
heat10 = 3600.0, 3600.0

race01 = 120.0, 120.0
race02 = 180.0, 180.0
race03 = 240.0, 240.0
race04 = 300.0, 300.0
race05 = 600.0, 600.0
race06 = 900.0, 900.0
race07 = 1200.0, 1200.0
race08 = 1800.0, 1800.0
race09 = 2400.0, 2400.0
race10 = 3600.0, 3600.0





; ── ■ │ HELICOPTER BEHAVIOUR │ ■ ─────────────────────────────────────────────────────────────────

[Helicopter:Chasing]
; How far away (in metres) the helicopter spawns to chase the pursuit target.
;
; ■ FORMAT: heatXY = {min, max}SpawnDistance (FREE-ROAM; -> "default" if omitted)
;           raceXY = {min, max}SpawnDistance (RACES;     -> "heatXY"  if omitted)
;
; • Each spawn distance is a random value between "minSpawnDistance" and "maxSpawnDistance".
; • Each value must be a non-negative decimal or whole number.
; • You can define a "default" value pair.

default = 250.0, 250.0

heat01 = 250.0, 250.0
heat02 = 250.0, 250.0
heat03 = 250.0, 250.0
heat04 = 250.0, 250.0
heat05 = 150.0, 150.0
heat06 = 150.0, 150.0
heat07 = 150.0, 150.0
heat08 = 150.0, 150.0
heat09 = 150.0, 150.0
heat10 = 100.0, 100.0

race01 = 250.0, 250.0
race02 = 250.0, 250.0
race03 = 250.0, 250.0
race04 = 250.0, 250.0
race05 = 150.0, 150.0
race06 = 150.0, 150.0
race07 = 150.0, 150.0
race08 = 150.0, 150.0
race09 = 150.0, 150.0
race10 = 100.0, 100.0




[Helicopter:Searching]
; How far away (in metres) the helicopter spawns to search for the pursuit target.
;
; ■ FORMAT: heatXY = {min, max}SpawnDistance (FREE-ROAM; -> "default" if omitted)
;           raceXY = {min, max}SpawnDistance (RACES;     -> "heatXY"  if omitted)
;
; • Each spawn distance is a random value between "minSpawnDistance" and "maxSpawnDistance".
; • Each value must be a non-negative decimal or whole number.
; • You can define a "default" value pair.

default = 250.0, 250.0

heat01 = 300.0, 300.0
heat02 = 300.0, 300.0
heat03 = 300.0, 300.0
heat04 = 300.0, 300.0
heat05 = 300.0, 300.0
heat06 = 300.0, 300.0
heat07 = 300.0, 300.0
heat08 = 300.0, 300.0
heat09 = 300.0, 300.0
heat10 = 150.0, 150.0

race01 = 300.0, 300.0
race02 = 300.0, 300.0
race03 = 300.0, 300.0
race04 = 300.0, 300.0
race05 = 300.0, 300.0
race06 = 300.0, 300.0
race07 = 300.0, 300.0
race08 = 300.0, 300.0
race09 = 300.0, 300.0
race10 = 250.0, 250.0




[Helicopter:Roadblocks]
; Whether the presence of roadblocks affects the helicopter's navigation behaviour.
;
; ■ FORMAT: heatXY = isAffected (FREE-ROAM; -> "default" if omitted)
;           raceXY = isAffected (RACES;     -> "heatXY"  if omitted)
;
; • Roadblocks can turn the helicopter more passive than usual.
; • Each value must be either "true" or "false".
; • You can define a "default" value.

default = false

heat01 = false
heat02 = false
heat03 = false
heat04 = false
heat05 = false
heat06 = false
heat07 = false
heat08 = false
heat09 = false
heat10 = false

race01 = false
race02 = false
race03 = false
race04 = false
race05 = false
race06 = false
race07 = false
race08 = false
race09 = false
race10 = false




[Helicopter:Ramming]
; Cooldown (in seconds) for the helicopter's ramming attempts through HeliStrategy 2.
;
; ■ FORMAT: heatXY = {min, max}RammingCooldown (FREE-ROAM; -> "default" if omitted)
;           raceXY = {min, max}RammingCooldown (RACES;     -> "heatXY"  if omitted)
;
; • Each ramming cooldown is a random value between "minRammingCooldown" and "maxRammingCooldown".
; • Each value must be a non-negative decimal or whole number.
; • You can define a "default" value pair.

default = 8.0, 8.0

heat01 = 10.0, 15.0
heat02 = 8.0, 12.0
heat03 = 6.0, 10.0
heat04 = 5.0, 8.0
heat05 = 4.0, 6.0
heat06 = 3.0, 5.0
heat07 = 2.5, 4.0
heat08 = 2.0, 3.0
heat09 = 1.5, 2.0
heat10 = 0.5, 1.0

race01 = 10.0, 15.0
race02 = 8.0, 12.0
race03 = 6.0, 10.0
race04 = 5.0, 8.0
race05 = 4.0, 6.0
race06 = 3.0, 5.0
race07 = 2.5, 4.0
race08 = 2.0, 3.0
race09 = 1.5, 2.0
race10 = 0.5, 1.0